A microfiche appendix containing computer program code is included herewith. The microfiche appendix consists of 4 microfiche cards having 349 total frames.
The appendix portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
1. The Field of the Invention
The present invention relates to the fields of ink jet printing devices, distributed computing systems, client-server computing and object-oriented programming. More specifically, the present invention is a method to control a printer system on a virtual control network utilizing object-oriented modules in a distributed object system.
2. The Relevant Art
Problems with traditional programming techniques stem from an emphasis placed on xe2x80x9cproceduralxe2x80x9d code that often is extremely difficult to design, update and modify. Generally, small changes in conventionally programmed code can affect all elements of the code. Thus, minor changes made to the software in response to user demands can require major redesign and rewriting of entire programs.
Object oriented programming strategies, which have become popular in recent years, tend to avoid these problems because object methodologies focus on manipulating data rather than procedures; thus providing the programmer with a more intuitive approach to modeling real world problems. In addition objects encapsulate related data and procedures so as to hide that information from the remainder of the program by allowing access to the data and procedures only through the object""s interface. Hence changes to the data and or procedures of the object are relatively isolated from the remainder of the program. Object code is therefore more easily maintained as compared to code written using traditional methods, as changes to an object""s code do not affect the code in the other objects. In addition, the inherent modular nature of objects allows individual objects to be reused in different programs. Thus, programmers can develop libraries of xe2x80x9ctried and truexe2x80x9d objects that can be used over and over again in different applications. This increases software reliability while decreasing development time, as reliable programming code may be used repeatedly. U.S. Pat. No. 5,815,710 to Martin et al. and U.S. Pat. No. 5,838,970 to Thomas both disclose detailed descriptions of object-oriented methodologies and the general advantages of modular code for non-specific applications.
However, the full promise of object oriented methodologies in specific applications, especially the advantages afforded by their modularity, have yet to be achieved. In particular, it would be highly desirable to allow programmers and other users access to objects in a transparent fashion so that objects created and residing on different printer platforms, such as the industrial and graphic ink jet printer systems made by Video jet Systems International of Wood Dale, Ill., may be made accessible to the user without extensive modification of the user""s programming code. Ink jet printers are in widespread use in addressing of mail pieces, i.e., projecting images down onto passing mail pieces, and container and package marking.
Objects in distributed systems are useful because they separate the object""s interface from its implementation; thus allowing software designers to take advantage of the functionalities of various objects available to them without having to worry about the details of the object""s implementation. The programmer need only be aware of the object""s interface. In addition, object oriented distributed systems allow for multiple implementations of a single interface, which interface may reside on different computing platforms that have been connected through a network. Thus, calls may be made to an object about which the programmer has no detailed knowledge with the confidence that at the appropriate time the remote object will be accessed and will return its data so that the programmers code will function properly. Such a system thus maximizes the inherent advantages of object oriented methodologies by taking full advantage of their modularity and encapsulation.
To achieve such a system, the resources and components of objects in the system must be managed and controlled by one or more objects having standardized interfaces. Particularly, in the field of industrial and graphic printing, it would be desirable to create a system whereby a top level job control object is responsible for initializing jobs and serves as an interface through which other objects communicate for the purpose of transferring electronic print images to substrates.
The foregoing desired aspects and advantages are achieved in a computer implemented method for controlling a printer system for transferring images onto a moving substrate utilizing object-oriented modules communicating via a virtual control network in a distributed object system. In one aspect, the method comprises the steps of providing a plurality of print job objects where one of the print job objects is a top level job control object. The top level job control object initializes a job for the purpose of transferring an electronic print image to a moving substrate not under control of the printer system. The top level job control object also serves as an interface through which the print job objects communicate.
In another aspect of the present invention, the print job objects are created in succession.
It is another aspect of the present invention for the print object job objects to create subordinate print job objects in lower level run time modules.
Still another aspect of the present invention is for the top level job control object to store and delete jobs within the system.
Still yet another aspect of the present invention is that the top level job control object serves as the primary interface for starting, stopping, and resuming a job, and commanding all other function modules with respect to starting, stopping, and resuming jobs.
Other aspects and advantages of the present invention will become apparent when the description of specific embodiments below are read in conjunction with the accompanying figures.